package com.hmy.finance.api.bo.core.request.vos;

import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 设备信息
 *
 * @author songkf
 */
@Data
public class DeviceInfoVo implements Serializable {
    private static final long serialVersionUID = 4047048751393242583L;
    /**
     * 进场单ID
     */
    @NotNull(groups = {Pause.class, SupplementaryPause.class, Default.class}, message = "进场单ID不能为空")
    private Long entryFormId;
    /**
     * 设备ID
     */
    @NotNull(groups = {Pause.class, SupplementaryPause.class, Default.class}, message = "设备ID不能为空")
    private Long deviceId;
    /**
     * 设备编号
     */
    private String deviceNo;
    /**
     * 设备型号
     **/
    private String deviceModel;
    /**
     * 设备类型
     **/
    private String deviceType;
    /**
     * 设备高度
     **/
    private Integer deviceHeight;
    /**
     * 日租单价
     **/
    private BigDecimal dailyRentalPrice;
    /**
     * 月租单价
     **/
    private BigDecimal monthlyRentalPrice;
    /**
     * 报停开始时间
     */
    @NotNull(groups = {Pause.class, SupplementaryPause.class}, message = "报停开始时间不能为空")
    private LocalDateTime pauseStartTime;
    /**
     * 报停结束时间
     */
    @NotNull(groups = {Pause.class, SupplementaryPause.class}, message = "报停结束时间不能为空")
    private LocalDateTime pauseEndTime;
    /**
     * 报停天数
     */
    @NotNull(groups = {Pause.class, SupplementaryPause.class}, message = "报停天数不能为空")
    private Double pauseDays;
    /**
     * 报停费用
     */
    @NotNull(groups = {SupplementaryPause.class}, message = "报停费用不能为空")
    private BigDecimal pauseFee;

    /**
     * 未来报停
     */
    public interface Pause {
    }

    /**
     * 补录报停
     */
    public interface SupplementaryPause {
    }
}
